Niepoprawnie wykonana wizualizacja pochodzi ze strony Flowing Data.
Poniżej znajduje się zdjęcie wykresu:
Ustalimy stałą grubość słupków i poprawimy proporcje wykresu. Dodatkowo dodamy do niego nową informację - każdy słupek powie nam, ile procent świata mówi w danym języku. Zważając na datę publikacji artykułu (15.07.2013) wykorzystamy dane o populacji świata z 2013 roku.
pop2013 = 7229 # w milionach ludzi, tak samo jak dane na wykresie
data = data.frame(language = as.factor(c("Chinese", "English","Spanish", "Hindi", "Arabic", "Russian", "Bengali", "Portugese", "Indonesian", "Japanese")),
value = c(1026, 765, 466, 380, 353, 272, 250, 217, 163, 123)) %>%
mutate(percentage = round(100 * value/pop2013, 2))
data
## language value percentage
## 1 Chinese 1026 14.19
## 2 English 765 10.58
## 3 Spanish 466 6.45
## 4 Hindi 380 5.26
## 5 Arabic 353 4.88
## 6 Russian 272 3.76
## 7 Bengali 250 3.46
## 8 Portugese 217 3.00
## 9 Indonesian 163 2.25
## 10 Japanese 123 1.70
plot_ly(
data = data,
x = ~language,
y = ~value,
customdata = ~percentage,
type = 'bar',
hovertemplate = "<b>Number of speakers:</b> %{value} mln <br><b>Percentage of the entire population:</b> %{customdata}%<extra></extra>") %>%
layout(
title = "10 most spoken languages in the world (in 2013)",
xaxis = list(title = "Language",
categoryorder = "total descending"),
yaxis = list(title = "Number of speakers (in millions)")
)
Pracy nie było wiele, a efekt jest zauważalnie lepszy. Po pierwsze, widać różnicę między chińskim i angielskim. Dodatkowo, jest ona dużo większa niż ta między japońskim a indonezyjskim; na początku było na odwrót. Słupki nie mają już różnych szerokości, a jednakowa kolorystyka zwiększa przejrzystość. Zyskaliśmy też nowe informacje o procencie ludzi na świecie mówiącym w danym języku.